A user may configure a programmable logic device (PLD) such as a field programmable gate array (FPGA) or complex programmable logic device (CPLD) to perform a desired function and thus avoid having to design an application specific integrated circuit (ASIC) to perform the same task. Because designs and system requirements may change and evolve, users of programmable logic devices can simply reprogram these devices without having to engineer another ASIC. Although programmable logic devices thus offer users significant advantages, a concern may be raised concerning their configurability. Specifically, the configuration of programmable logic devices often depends upon a volatile configuration memory such as SRAM that may become corrupted during programmable logic device operation. Should a configuration bit in the configuration memory change its value, a programmable logic device may cease to perform the function desired by a user. In critical applications, such a failure could be disastrous.
Volatile configuration memory may become corrupted in a number of ways. For example, all materials, including the semiconductor substrate used to form a configuration memory, are naturally radioactive. Although this natural level of radioactivity is quite low, it still involves the emission of alpha particles. These high energy particles may then interact with a memory cell and corrupt its value. Alternatively, power brownout, i.e., a glitch or drop in supply voltages over a certain duration, may corrupt the programmed value of the memory cells. Cosmic rays also generate charged particles that may corrupt the programmed values. Because all these sources of memory error do not relate to internal hardware flaws in the memory cells but rather to external effects that cause errors, they may be denoted as sources of soft error. The error itself is also referred to as a “soft error upset” or “single event upset” (SEU).
Accordingly, there is need in the art for programmable logic devices configured to continuously monitor their configuration memories for soft errors.